Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
40 lines (33 loc) · 1.36 KB

6.3.4 - Table->set.md

File metadata and controls

40 lines (33 loc) · 1.36 KB

Table->set

设置行的数据,Table使用key-value的方式来访问数据。

Table->set(string $key, array $value) : void

参数

  • $key,数据的key,相同的$key对应同一行数据,如果set同一个key,会覆盖上一次的数据
  • $value,必须是一个数组,必须与字段定义的$name完全相同

swoole_table->set() 可以设置全部字段的值,也可以只修改部分字段
swoole_table->set() 未设置前,该行数据的所有字段均为空
set/get/del 是自带行锁,所以不需要调用lock加锁
Key非二进制安全,必须为字符串类型,不得传入二进制数据

返回值

此函数没有返回值。

使用示例

$table->set('1', ['id' => 1, 'name' => 'test1', 'age' => 20]);
$table->set('2', ['id' => 2, 'name' => 'test2', 'age' => 21]);
$table->set('3', ['id' => 3, 'name' => 'test3', 'age' => 19]);

设置超过最大长度字符串

如果传入字符串长度超过了列定义时设定的最大尺寸,底层会自动截断。

示例:

$table->column('str_value', swoole_table::TYPE_STRING, 5);
$table->set('hello', array('str_value' => 'world 123456789'));
  • str_value列最大尺寸为5字节,但set设置了超过5字节的字符串
  • 底层会自动截取5字节的数据,最终str_value的值为world